package com.internetCafes.spms.web.sys.service;

import com.internetCafes.spms.core.model.pageModel.DataGrid;
import com.internetCafes.spms.web.sys.model.ResourceInfo;
import com.internetCafes.spms.web.sys.vo.ResourceInfoVo;

import java.util.List;
import java.util.Map;

/**
 * 资源信息表
 *
 * @author Sunny
 * @email rekeeper2011@hotmail.com
 * @date 2019-04-26 15:27:07
 */
public interface ResourceInfoService {

    /**
     * 批量更新
     *
     * @param resourceBatch 列表
     * @param moduleCode    资源模块code
     * @param modelId       对应记录id
     * @author Zj
     */
    void updateBatch(List<ResourceInfo> resourceBatch, String moduleCode, Long modelId);

    /**
     * 查询
     */
    public List<ResourceInfo> query(Map<String, Object> params);

    /**
     * ID查询
     */
    public ResourceInfo findById(Long id);

    /**
     * ID批量查询
     */
    public List<ResourceInfo> queryByIds(List<Long> ids);

    /**
     * 参数分页查询
     */
    public List<ResourceInfo> page(Map<String, Object> params, int page, int rows);

    /**
     * 参数查询总数
     */
    public long count(Map<String, Object> params);

    /**
     * First查询
     */
    public ResourceInfo findFirst(Map<String, Object> params);

    /**
     * 保存
     */
    public int save(ResourceInfo resourceInfo);

    /**
     * 批量保存
     */
    public int saveBatch(List<ResourceInfo> resourceInfoList);

    /**
     * 选择保存
     */
    public int saveSelective(ResourceInfo resourceInfo);

    /**
     * 修改
     */
    public int update(ResourceInfo resourceInfo);

    /**
     * 选择修改
     */
    public int updateSelective(ResourceInfo resourceInfo);

    /**
     * 删除
     */
    public int delete(Long id);

    /**
     * 批量删除
     */
    public int deleteBatch(List<Long> ids);

    /**
     * 批量删除
     */
    public void deleteBatch(Long[] ids);


    /**
     * DataGrid
     */
    public DataGrid dataGrid(Map<String, Object> params, int pageNo, int pageSize);


    void deleteByModuleAndUserId(Map<String, Object> params);

    List<ResourceInfoVo> selectByParamsUnionUserInfo(Map<String, Object> params);
}
